home *** CD-ROM | disk | FTP | other *** search
- Path: engnews1.Eng.Sun.COM!taumet!clamage
- From: bs@research.att.com
- Newsgroups: comp.std.c++
- Subject: Returning void
- Date: 25 Feb 1996 16:44:40 GMT
- Organization: ?
- Approved: clamage@eng.sun.com (comp.std.c++)
- Message-ID: <199602250134.SAA02280@ncar.ucar.EDU>
- NNTP-Posting-Host: taumet.eng.sun.com
- Content-Type: text
- Content-Length: 1786
- Originator: clamage@taumet
-
- Paul D. DeRocco <pderocco@ix.netcom.com> writes:
-
- > The C++ standard doesn't allow a return statement with an expression to
- > be used in a function whose return type is void.
- >
- > I suggest that it should be legal to return a void expression from a
- > function whose type is void. Why? It can be useful in templates.
- > Consider the following:
- >
- > template <class T, class R> class Functor {
- > public:
- > R& operator()() { return (obj.*mem)(); }
- > Functor(T& o, R& (T::*m)()): obj(o), mem(m) {}
- > private:
- > T& obj;
- > R& (T::*mem)();
- > }
- >
- > This defines a functor containing a pointer to an object to be operated
- > on, and a pointer to a member function defined for that object. It
- > should work for any member function that takes no arguments and returns
- > a result. Unfortunately, it won't work for a member function that
- > returns void. If return were modified as described above, this function
- > template would work for member functions that return void as well.
-
- I have written a note to the committee formally proposing this. The reason
- stated was roughly the one above. In addition - and for the same reason -
- I proposed to allow an expression of type void to be used as the argument
- of a function taking no argument.
-
- There is no guarantee that the committee will accept this or even that the
- committee will consider it (though clearly I think the committee ought to).
-
- - Bjarne
- [ To submit articles: Try just posting with your newsreader.
- If that fails, use mailto:std-c++@ncar.ucar.edu
- FAQ: http://reality.sgi.com/employees/austern_mti/std-c++/faq.html
- Policy: http://reality.sgi.com/employees/austern_mti/std-c++/policy.html
- Comments? mailto:std-c++-request@ncar.ucar.edu
- ]
-